/**
 * @param {number[]} nums
 * @return {number}
 */

 var totalHammingDistance = function(nums) {
    let ret=0;
    let edge=1;
    while(Math.pow(2,edge)<1000000000){
        edge++;
    }
    for(let i=0;i<=edge;i++){
        let c=0;
        for(let j=0;j<nums.length;j++){
            c+=nums[j]%2;
            nums[j]>>=1;
        }
        ret+=c*(nums.length-c);
    }
    return ret;
};


// 92 ms
// , 在所有 JavaScript 提交中击败了
// 86.67%
// 的用户
// 内存消耗：
// 41.5 MB
// , 在所有 JavaScript 提交中击败了
// 66.67%
// 的用户